package fiuba.algo3.motor;

import java.util.List;

//import org.w3c.dom.Document;
//import org.w3c.dom.Node;
//import org.w3c.dom.NodeList;

import fiuba.algo3.XMLProcessor.nucleo.NodoDocumento;
import fiuba.algo3.XMLProcessor.nucleo.NodoXML;
import java.io.FileNotFoundException;
import java.util.logging.Level;
import java.util.logging.Logger;

public abstract class MotorXML
{
/*	public static Node[] obtenerListado(Node raiz)
	{
		NodeList lista = raiz.getChildNodes();

		int cantidadNodos = lista.getLength();
		Node listadoNodos[] = new Node[cantidadNodos];

		for (int i = 0; i < cantidadNodos; i++)
			listadoNodos[i] = lista.item(i);

		return listadoNodos;	
	}
*/
/*	public static Node[] obtenerListado(String nombreArchivo)
	{
		Document documento = ManejadorDeArchivos.leerArchivo(nombreArchivo);
		return obtenerListado(documento.getFirstChild());
	}
*/
	public static List<NodoXML> obtenerListadoXML(String nombreArchivo)
	{
		NodoDocumento documento = null;
		try
		{
			documento = NodoDocumento.leerArchivo(nombreArchivo);
		}
		catch (FileNotFoundException ex)
		{
			Logger.getLogger(MotorXML.class.getName()).log(Level.SEVERE, "Error leyendo archivo <" + nombreArchivo + ">", ex);
		}

		return documento.raiz().obtenerHijos();
	}
/*
	public static Node obtenerAtributo(Node nodo, String nombreAtributo)
	{
		return nodo.getAttributes().getNamedItem(nombreAtributo);
	}

	public static String obtenerValorAtributo(Node atributo)
	{
		return atributo.getNodeValue();
	}

	public static String obtenerValorAtributo(Node nodo, String nombreAtributo)
	{
		return obtenerValorAtributo(obtenerAtributo(nodo, nombreAtributo));
	}

	public static boolean verificarEntidad(Node nodo, String entidadEsperada)
	{
		return nodo.getNodeName().equals(entidadEsperada);
	}

	public static boolean verificarAtributo(Node nodo, String nombreAtributo, String valorEsperado)
	{
		return obtenerValorAtributo(nodo, nombreAtributo).equals(valorEsperado);
	}

	public static boolean verificarEntidadYAtributo(Node nodo, String entidadEsperada, String nombreAtributo, String valorEsperado)
	{
		return verificarEntidad(nodo, entidadEsperada) && verificarAtributo(nodo, nombreAtributo, valorEsperado);
	}
*/
}
